package models

import (
	"driver_srv/basic/config"
	"gorm.io/gorm"
	"time"
)

// 车辆证件表
type VehicleFiles struct {
	Id                          int32          `gorm:"column:id;type:int;comment:主键ID;primaryKey;not null;" json:"id"`                                                             // 主键ID 	// 车辆ID
	VehicleInvoicePath          string         `gorm:"column:vehicle_invoice_path;type:varchar(255);comment:车辆发票图片路径;default:NULL;" json:"vehicle_invoice_path"`                   // 车辆发票图片路径
	CertificatePath             string         `gorm:"column:certificate_path;type:varchar(255);comment:合格证图片路径;default:NULL;" json:"certificate_path"`                            // 合格证图片路径
	DrivingProofPath            string         `gorm:"column:driving_proof_path;type:varchar(255);comment:行驶证图片路径;default:NULL;" json:"driving_proof_path"`                        // 行驶证图片路径
	RegistrationCertificatePath string         `gorm:"column:registration_certificate_path;type:varchar(500);comment:登记证书图片路径;default:NULL;" json:"registration_certificate_path"` // 登记证书图片路径
	TaxProofPath                string         `gorm:"column:tax_proof_path;type:varchar(255);comment:完税证明图片路径;default:NULL;" json:"tax_proof_path"`                               // 完税证明图片路径
	VehicleTransportCertPath    string         `gorm:"column:vehicle_transport_cert_path;type:varchar(255);comment:汽车运输证图片路径;default:NULL;" json:"vehicle_transport_cert_path"`    // 汽车运输证图片路径
	OtherOnePath                string         `gorm:"column:other_one_path;type:varchar(500);comment:其他一图片路径;default:NULL;" json:"other_one_path"`                                // 其他一图片路径
	OtherTwoPath                string         `gorm:"column:other_two_path;type:varchar(255);comment:其他二图片路径;default:NULL;" json:"other_two_path"`                                // 其他二图片路径
	CreateTime                  time.Time      `gorm:"column:create_time;type:datetime;comment:创建时间;not null;default:CURRENT_TIMESTAMP;" json:"create_time"`                       // 创建时间
	UpdateTime                  time.Time      `gorm:"column:update_time;type:datetime;comment:修改时间;not null;default:CURRENT_TIMESTAMP;" json:"update_time"`                       // 修改时间
	DeleteTime                  gorm.DeletedAt `gorm:"column:delete_time;type:datetime;comment:删除时间（软删除标记）;default:NULL;" json:"delete_time"`                                      // 删除时间（软删除标记）
}

func (v *VehicleFiles) TableName() string {
	return "vehicle_files"
}

// 更具Id查询车辆证件
func (v *VehicleFiles) GetVehicleFilesById(vehicleFilesId int32) error {
	return config.DB.Where("id = ?", vehicleFilesId).Limit(1).Find(&v).Error
}

// 车辆证件图片添加
func (v *VehicleFiles) VehicleFilesAdd() error {
	return config.DB.Create(v).Error
}
